With continued globalization and growth of computer use around the world, the need for computer platforms which are able to accommodate multiple cultures and languages has greatly increased. In today's interconnected world, computer software programs often have the ability to provide user interfaces in multiple languages, allowing a single software product to be utilized by computer users across the globe. Such interfaces have the ability to accept inputs from a variety of input sources and output the language that a user requires.
To facilitate a multiple language computing environment, computer platforms often utilize an input method editor (IME), a program that allows users to enter a variety of languages using a standard keyboard. IMEs are commonly used to create complex characters and symbols, such as Japanese Kanji characters. For example, Microsoft Corporation's WINDOWS® 2000™ operating system includes systems IMEs for locales with languages using non-Latin alphabets, such as Japanese, Koreans, and Chinese. IMEs may be quite sophisticated and often use multiple keyboard commands to define individual composed characters. When an IME is active, input events such as a keyboard keystroke may be routed through the IME to allow the IME to process the input event and output a desired character.
A text converter also may handle input events. For example, such a text converter may output a Unicode value. Unicode is an international standard for international coding text. Unicode provides the capacity to encode all the characters used for the major written languages of the world. For example, Unicode scripts include Latin, Greek, Armenian, Hebrew, Arabic, Bengali, Thai, Japanese kana, a unified set of Chinese, Japanese, and Korean ideographs, as well as many other languages. Unicode is based on a 16-bit code set that provides codes for more than 65,000 characters, whereby each character is identified by a unique 16-bit value. By utilizing such a text converter, a computer system providing a multiple language computing environment may convert a user input event into a value that represents any number of multi-language characters.
A problem occasionally experienced when a computing platform utilizes an IME and/or a text converter is determining whether an IME, a text converter, or an application should handle a given input event. For example, an application designed for the English language may be running on a computer system that has an enabled Spanish language IME. If the application, when written, did not contemplate operation with multiple languages or with an IME, the application may attempt to handle input events as if the IME was not enabled. The application will attempt to interpret the Spanish user inputs. However, because the application did not contemplate non-English inputs, the communication will fail, and the application will not be useful to a user. Often software developers are not aware of multi-language features included with particular platforms, and the applications created by such developers do not perform well when multi-language utilities are in operation. Accordingly, there is a need for improved techniques that allow applications to co-exist with input processing utilities such as IMEs and text converters.